Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add eiskaltdcpp.mk to mxe/plugins/apps #1165

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

pavelvat
Copy link
Contributor

Problems:
1)$(PKG)_BUILD_STATIC = because linked error for static builds: http://pastebin.com/A9C4T5Vx
It is can be fixed by adding names of depend libraries to https://github.com/eiskaltdcpp/eiskaltdcpp/blob/14bd7229c12f06a4251c8a57795e4121e1b53d01/eiskaltdcpp-qt/CMakeLists.txt#L346
How to get full list names of depend libraries for static Qt5?
2)$(PKG)_BUILD_x86_64-w64-mingw32 = because mxe/tools/copydlldeps.py don't work for x86_64, see #589
3)#1127 (comment) so 'nsis' from:

$(PKG)_DEPS     := gcc zlib bzip2 libiconv gettext miniupnpc jsoncpp aspell libidn openssl pcre lua boost qt5 nsis

can not be build for x86_64-w64-mingw32.static x86_64-w64-mingw32.shared targets. It can be fixed in common case by using Linux package nsis instead nsis.mk.
4)Currently eiskaltdcpp-qt.exe don't launch due to #1143. It can be fixed by editing eiskaltdcpp.mk:

        -DUSE_ASPELL=OFF \

and disabled this lines

        $(TARGET)-makensis '$(1).build/EiskaltDC++.nsi'; \
        $(INSTALL) '$(1).build/EiskaltDC++-2.4.0-x86.exe' '$(PREFIX)/$(TARGET)/apps/$(PKG)/nsis'

because NSIS script required file libaspell-15.dll.
5)Installer enabled only for shared builds because NSIS script required refactoring for support static builds. I will make it in future.
6)line:

        $(INSTALL) '$(1).build/EiskaltDC++-2.4.0-x86.exe' '$(PREFIX)/$(TARGET)/apps/$(PKG)/nsis'

work only for i686-w64-mingw32. How to check "if(x86_64)"?
7)Also need manual editing the file:

$(PREFIX)/$(TARGET)/include/boost/interprocess/detail/win32_api.hpp

remove prefix 'std::' from std::sprintf, see #1104

@starius
Copy link
Member

starius commented Jan 10, 2016

How to get full list names of depend libraries for static Qt5?

Like this:

./usr/bin/i686-w64-mingw32.static-pkg-config -libs Qt5Core

Add other Qt components if you need them. Full list of Qt5's pc files can be found in usr/i686-w64-mingw32.static/qt5/lib/pkgconfig/.

How to check "if(x86_64)"?

$(if $(findstring x86_64,$(TARGET)),your code,)

See src/openblas.mk

pavelvat added a commit to eiskaltdcpp/eiskaltdcpp that referenced this pull request Jan 25, 2016
@pavelvat
Copy link
Contributor Author

1)Fixed.
2)Enable x86_64 build, but don't copy dll-depends due to #589
3)I think that the best option would be to add Linux package nsis to http://mxe.cc/#requirements
4)#1143 (comment)
5)Installer disabled for x86_64_shared due to #589, Installer disabled for static builds because I don't know how to detect from NSIS at compile time is eiskaltdcpp-qt.exe 32-bit or 64-bit file. In order to detect 32-bit or 64-bit shared builds uses this: https://github.com/eiskaltdcpp/eiskaltdcpp/blob/master/windows/EiskaltDC%2B%2B.nsi#L3-L19, so I can detect static type if these two files don't exist simultaneously: libgcc_s_sjlj-1.dll, libgcc_s_seh-1.dll. But for static type I can't detect 32-bit or 64-bit case must be used to compile EiskaltDC++ installer.
6)Fixed.

@starius
Copy link
Member

starius commented Jan 31, 2016

  1. Are you sure that system package nsis (e.g., from Debian) can build a 64-bit installer?

@pavelvat
Copy link
Contributor Author

64-bit installer does not need. 32-bit installer completely provides all that is needed.

@starius
Copy link
Member

starius commented Jan 31, 2016

@pavelvat, I think it is generally a bad idea to add a package to requirements, if it is built by MXE and can be used. The main problem here is that targets of eiskaltdcpp and nsis are different. This could be fixed, should MXE allow a cross-target dependency.

Can we add the following syntax to _DEPS:

$(PKG)_DEPS     :=  gcc zlib bzip2  ... i686-w64-mingw32.static~nsis

?

@tonytheodore tonytheodore mentioned this pull request Feb 1, 2016
@tonytheodore
Copy link
Member

The mechanism in #516 (Add mechanism for depending on build system packages) for cross-target deps would cause entire toolchain to be built again. This may be better handled in #961 (Build gcc once) and I've added a note there.

@pavelvat
Copy link
Contributor Author

pavelvat commented Feb 1, 2016

From https://github.com/Alexpux/MINGW-packages/pull/993:

The bug in 64-bit installers has finally been fixed upstream.

@tonytheodore
Copy link
Member

Bump cross-target dependency

@pavelvat
Copy link
Contributor Author

Updated for Qt 5.6 and rebased.
Required multiCall from #1278:

        '$(TOP_DIR)/tools/copydlldeps.sh' -c \
                                          -d '$(PREFIX)/$(TARGET)/apps/$(PKG)/$(PKG)' \
                                          -F '$(PREFIX)/$(TARGET)/apps/$(PKG)/$(PKG)' \
                                          -F '$(PREFIX)/$(TARGET)/apps/$(PKG)/$(PKG)/sqldrivers' \
                                          -R '$(PREFIX)/$(TARGET)';

Current status:
1)Fixed
2)Fixed
3)required nsis for 64-bit mxe-targets (currently MXE contain nsis version 2.50, but version 2.51 is available https://sourceforge.net/projects/nsis/ and seems contain some fixes for 64-build)
4)Fixed
5)Fixed
6)Fixed
7)Not Fixed (#1104)

$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := https://github.com/$(PKG)/$(PKG)/archive/$($(PKG)_VERSION).tar.gz
$(PKG)_DEPS := gcc aspell boost jsoncpp libidn lua miniupnpc nsis qt5
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think full qt5 target requires too much build time and disk space.
Could you specify only really used qt modules?

tehnick added a commit to sibuserv/mxe that referenced this pull request May 6, 2016
@tehnick
Copy link
Contributor

tehnick commented May 6, 2016

tehnick added a commit to sibuserv/mxe that referenced this pull request May 7, 2016
@pavelvat
Copy link
Contributor Author

pavelvat commented May 7, 2016

Could you specify only really used qt modules?

Done.

tehnick added a commit to sibuserv/mxe that referenced this pull request May 10, 2016
tehnick added a commit to sibuserv/mxe that referenced this pull request May 14, 2016
tehnick added a commit to sibuserv/mxe that referenced this pull request May 16, 2016
@pavelvat pavelvat mentioned this pull request Jun 28, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants